package com.taotao.service.impl;


import com.taotao.mapper.ContentCategoryMapper;
import com.taotao.pojo.ContentCategory;
import com.taotao.service.ContentCategoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

/**
 * describe:
 *
 * @author hong.zheng
 * @date 2018/09/12
 */
@Service
public class ContentCategoryServiceImpl implements ContentCategoryService {
    @Autowired
    private ContentCategoryMapper contentCategoryMapper;
    @Override
    public List<ContentCategory> getContentCategoryList(long parentId) {
        return contentCategoryMapper.selectContentCategoryList(parentId);
    }

    @Override
    public ContentCategory selectContentCategory(long id) {
        return contentCategoryMapper.selectContentCategory(id);
    }

    @Override
    public void insertContentCategory(long parentId, String name) {
        ContentCategory contentCategory = new ContentCategory();
        contentCategory.setName(name);
        contentCategory.setParent(false);
        //'状态。可选值:1(正常),2(删除)',
        contentCategory.setStatus(1);
        contentCategory.setParentId(parentId);
        contentCategory.setSortOrder(1);
        contentCategory.setCreated(new Date());
        contentCategory.setUpdated(new Date());
        //添加记录
        contentCategoryMapper.insertContentCategory(contentCategory);

        ContentCategory parentContentCategory = contentCategoryMapper.selectContentCategory(parentId);

        if(parentId!=0){
            if(!parentContentCategory.getParent()) {
                parentContentCategory.setParent(true);
                //更新父节点
                this.updateContentCategory(parentContentCategory);
            }
        }
    }

    @Override
    public void updateContentCategory(ContentCategory contentCategory) {
        contentCategory.setUpdated(new Date());
        contentCategoryMapper.updateContentCategory(contentCategory);
    }

    @Override
    public void deleteContentCategory(long id, long parentId) {
        contentCategoryMapper.deleteContentCategory(id);

        List<ContentCategory> parentContentCategorys = contentCategoryMapper.selectContentCategoryList(parentId);
        if(parentContentCategorys==null||parentContentCategorys.size()==0) {
            ContentCategory parentContentCategory = contentCategoryMapper.selectContentCategory(parentId);
            parentContentCategory.setParent(false);
            //更新父节点
            this.updateContentCategory(parentContentCategory);
        }
    }
}
